selection problem

problem

共N個數字取第 K 大的數字。

Input:

一堆數字 (N個)、 K

Output:

第 K 大的數字

solution

做好排序(大到小)

approach 1 / 簡單但須處理過所有數字

一堆數字塞array,排大小,要第 K 大就在 K 位置

approach 2 / Array大小就只有 K,只要對 K 個作排序

一堆數字中取 K 個數字進 array 排序,從未選取的數字裡和 array 中第 K 個數字比較

  • 比第 K 個數字小: 不理他
  • 比第 K 個數字大: 有機會進來,看要放哪個位置

============================================================

note:

時間上來說 排序 會差很多,但 是比對 不會差很多,試想 approach 1 和 approach 2 如果 N >> K,那方法的好壞差距就出來囉!

results matching ""

    No results matching ""